package com.spsa.persistencia.dao;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import com.spsa.excepciones.ActualizarDatosException;
import com.spsa.excepciones.RecuperarDatosException;
import com.spsa.persistencia.entidades.Interfaz;

@Stateless
public class InterfazDao {
	static final Logger logger = LogManager.getLogger(InterfazDao.class.getName());

	@PersistenceContext(unitName="Notificacion")
	private EntityManager em;
	
	public List<Interfaz> listar() throws RecuperarDatosException{
		try {
			Query query = em.createQuery("SELECT i FROM Interfaz i");
			List<Interfaz> interfaces = query.getResultList();
			return interfaces;
		} catch (Exception e) {
			logger.fatal("No se pudo recuperar la lista de Interfaces de la BD", e);
			throw new RecuperarDatosException("No se pudo recuperar la lista de Interfaces de la BD");
		}
	}

	public void actualizar(Interfaz interfaz) throws ActualizarDatosException {
		try {
			em.merge(interfaz);
		}
		catch(Exception e) {
			logger.error("No se pudo actualizar los datos de la Interfaz. " + interfaz, e);
			throw new ActualizarDatosException("No se pudo actualizar los datos de la Interfaz. " + interfaz);
		}
	}
}
